/* 
给定两个数组，编写一个函数来计算它们的交集。

 

示例 1：

输入：nums1 = [1,2,2,1], nums2 = [2,2]
输出：[2]

说明：

输出结果中的每个元素一定是唯一的。
我们可以不考虑输出结果的顺序。
*/

/* 
思路1:数组去重后暴力遍历
思路2：将数组1存到set结构中，判断数组2的每项的值是否在set中存在
*/
/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
 var intersection = function(nums1, nums2) {
    //  思路1
     /* let arr1=[...new Set(nums1)]
     let arr2=[...new Set(nums2)]
     let ret=[]
     const n1=arr1.length
     const n2=arr2.length
     for(let i=0;i<n1;i++){
        for(let j=0;j<n2;j++){
            if(arr1[i]==arr2[j]){
                ret.push(arr1[i])
            }
        }
     }
     return ret */

    //  思路2
    let set1=new Set(nums1)
    let arr2=[...new Set(nums2)]
    let ret=[]
    for (let i = 0; i < arr2.length; i++) {
        if(set1.has(arr2[i])){
            ret.push(arr2[i])
        }
    }
    return ret

};
// 运行

let nums1 = [4,9,5], nums2 = [9,4,9,8,4]
console.log(intersection(nums1,nums2));